package cn.wildfire.chat.app.extendsion.classes;

import android.os.Parcelable;

import com.google.gson.Gson;

/**
 * Create by HEKE, 2019/9/23 16:23
 * TODO Json格式数据转化基类对象
 */
public abstract class GsonObject implements Parcelable {

    /**
     * Json转化对象
     *
     * @param jsonStr
     * @param classz
     * @return
     */
    public GsonObject toGsonObject(String jsonStr, Class<? extends GsonObject> classz) {
        GsonObject gsonObject = null;
        try {
            jsonStr = jsonStr.replaceAll("[\\\\]","");
            gsonObject = new Gson().fromJson(jsonStr, classz);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return gsonObject;
    }

    /**
     * 对象转json格式
     *
     * @return
     */
    public String toJson() {
        String jsonStr = null;
        try {
            jsonStr = new Gson().toJson(this);
            // 转义
            jsonStr = jsonStr.replaceAll("\"", "\\\\\"");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return jsonStr;
    }

    /**
     * 对象转json格式
     *
     * @return
     */
    public String toNormalJson() {
        String jsonStr = null;
        try {
            jsonStr = new Gson().toJson(this);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return jsonStr;
    }

}
